package com.xbongbong.pro.statistic.pojo.vo;

import com.xbongbong.paas.toolbox.wrap.BaseVO;
import com.xbongbong.pro.domain.entity.ChartCategoryEntity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.List;

/**
 * 首页左侧菜单展示接口VO
 *
 * @author zcp
 * @date 2019/1/16
 * @since v1.0
 * @version v1.0
 */
@Setter
@Getter
@ToString
public class ChartCategoryIndexDetailVO extends BaseVO {
    private static final long serialVersionUID = 8871865831402962534L;
    /**
     * 报表分类id---首页小瑞使用
     */
    private Long chartCategoryId;
    /**
     * 区分分类1和图表2---首页小瑞使用
     */
    private Integer chartCategoryType = 1;
    /**
     * 父分类ID，顶级分类父分类为0
     */
    private Long parentId;
    /**
     * 1app首页特殊类，2首页右侧动态看板分类，3首页左侧分类，4图表中心系统分类，5图表中心新建的分类
     */
    private Integer categoryType;
    /**
     * 报表分类名称
     */
    private String categoryName;
    /**
     * 首页看板设置，是否可拖动，1是0否
     */
    private Integer drag;
    /**
     * 子分类
     */
    private List<ChartCategoryIndexDetailVO> childList;
    /**
     * 分类下面的图表列表
     */
    private List<ChartBaseInfoVO> chartList;

    private Integer statisticsType;

    /**
     * 区分自定义和系统，自定义为1，空或者其他为0
     */
    private Integer isCustom = 0;
    /**
     *  置灰，0不置灰，1置灰
     */
    private Integer forbidden = 0;

    private Integer sort;


    private String alias;

    /**
     * 把分类列表实体转化为首页分类信息vo
     * @param entity ChartCategoryEntity实体
     * @param indexFlag 是否是首页的分类
     * @return com.xbongbong.pro.statistic.pojo.vo.ChartCategoryIndexDetailVO
     * @author zcp
     * @date 2019/1/21 11:01
     * @since
     * @version
     */
    public static ChartCategoryIndexDetailVO category2CategoryIndexDetailVO(ChartCategoryEntity entity, boolean indexFlag) {
        Integer drag = 0;
        if (indexFlag) {
            //web首页分类可拖动、图表中心的任何分组都不能移动（只有分组下的图表能移动）
            drag = 1;
        }
        ChartCategoryIndexDetailVO indexDetailVO = new ChartCategoryIndexDetailVO();
        indexDetailVO.setChartCategoryId(entity.getId());
        indexDetailVO.setParentId(entity.getParentId());
        indexDetailVO.setCategoryType(entity.getType());
        indexDetailVO.setCategoryName(entity.getName());
        indexDetailVO.setDrag(drag);
        indexDetailVO.setAlias(entity.getAlias());
        return indexDetailVO;
    }
}
